#include <iostream>
#include <mutex>
#include <thread>

std::mutex mtx; // 定义一个互斥量
int counter = 0; // 定义一个全局变量

void increase() {
    for (int i = 0; i < 300000; ++i) {
        mtx.lock(); // 对互斥量加锁
        ++counter; // 修改全局变量
        mtx.unlock(); // 对互斥量解锁
    }
}

int main() {
    std::thread t1(increase); // 创建一个线程t1执行increase函数
    std::thread t2(increase); // 创建一个线程t2执行increase函数
    t1.join(); // 等待线程t1执行完毕
    t2.join(); // 等待线程t2执行完毕
    std::cout << "Counter: " << counter << std::endl; // 输出全局变量counter的值
    return 0;
}

